[cpp]便捷的字符串分割方法
前言
不像python的str提供的内置split
方法一样方便的进行字符串分割,c++的string
模板库没有直接提供分割字符串的成员方法。偶然在看《c++prime》时看到string
模板库提供getline
方法, 利用方法可以实现自定义分隔符分割字符串。
使用getline进行分割
getline函数接受三个参数,分别是input
(the stream to get data from), str
(the string to put the data into), delim
(the delimiter character) 。该函数返回值是input
。
其中input
是istream
类型,比如cin
, istringstream
等继承自istream
的类,分割符为char
型字符。
为了获取带空格的字符串,一般使用getline(cin, str)
进行读取字符串。读取待分割字串到str中后,我们需要用其实例化一个istringstream
作为getline
的input
才能完成分割。
分割过程中需要注意一点: 若待分割字符串中包含连续的分割字符,这种情况会得到空字符串。多数情况下我们不期望得到空字符串,因此需要判断分割得到的字符串是否为空。
Demo
Code
1 |
|
结果
欢迎讨论指正
[cpp]便捷的字符串分割方法